<?php declare(strict_types=1);


namespace App\Model\Entity;

use Swoft\Db\Annotation\Mapping\Column;
use Swoft\Db\Annotation\Mapping\Entity;
use Swoft\Db\Annotation\Mapping\Id;
use Swoft\Db\Eloquent\Model;


/**
 * 签到记录表
 * Class SignRecord
 *
 * @since 2.0
 *
 * @Entity(table="sign_record")
 */
class SignRecord extends Model
{
    /**
     * 
     * @Id()
     * @Column()
     *
     * @var int
     */
    private $id;

    /**
     * 用户id
     *
     * @Column(name="member_id", prop="memberId")
     *
     * @var int|null
     */
    private $memberId;

    /**
     * 日期
     *
     * @Column()
     *
     * @var string|null
     */
    private $date;

    /**
     * 获得积分
     *
     * @Column()
     *
     * @var int|null
     */
    private $value;

    /**
     * 额外奖励积分
     *
     * @Column(name="extra_value", prop="extraValue")
     *
     * @var int|null
     */
    private $extraValue;

    /**
     * 是否补签，0:正常，1:补签
     *
     * @Column(name="is_retroactive", prop="isRetroactive")
     *
     * @var int|null
     */
    private $isRetroactive;

    /**
     * 实物奖品id
     *
     * @Column(name="sign_product_id", prop="signProductId")
     *
     * @var int|null
     */
    private $signProductId;

    /**
     * 创建时间
     *
     * @Column(name="created_at", prop="createdAt")
     *
     * @var int|null
     */
    private $createdAt;

    /**
     * 修改时间
     *
     * @Column(name="updated_at", prop="updatedAt")
     *
     * @var int|null
     */
    private $updatedAt;

    /**
     * 年月组合
     *
     * @Column(name="year_day", prop="yearDay")
     *
     * @var string|null
     */
    private $yearDay;


    /**
     * @param int $id
     *
     * @return void
     */
    public function setId(int $id): void
    {
        $this->id = $id;
    }

    /**
     * @param int|null $memberId
     *
     * @return void
     */
    public function setMemberId(?int $memberId): void
    {
        $this->memberId = $memberId;
    }

    /**
     * @param string|null $date
     *
     * @return void
     */
    public function setDate(?string $date): void
    {
        $this->date = $date;
    }

    /**
     * @param int|null $value
     *
     * @return void
     */
    public function setValue(?int $value): void
    {
        $this->value = $value;
    }

    /**
     * @param int|null $extraValue
     *
     * @return void
     */
    public function setExtraValue(?int $extraValue): void
    {
        $this->extraValue = $extraValue;
    }

    /**
     * @param int|null $isRetroactive
     *
     * @return void
     */
    public function setIsRetroactive(?int $isRetroactive): void
    {
        $this->isRetroactive = $isRetroactive;
    }

    /**
     * @param int|null $signProductId
     *
     * @return void
     */
    public function setSignProductId(?int $signProductId): void
    {
        $this->signProductId = $signProductId;
    }

    /**
     * @param int|null $createdAt
     *
     * @return void
     */
    public function setCreatedAt(?int $createdAt): void
    {
        $this->createdAt = $createdAt;
    }

    /**
     * @param int|null $updatedAt
     *
     * @return void
     */
    public function setUpdatedAt(?int $updatedAt): void
    {
        $this->updatedAt = $updatedAt;
    }

    /**
     * @param string|null $yearDay
     *
     * @return void
     */
    public function setYearDay(?string $yearDay): void
    {
        $this->yearDay = $yearDay;
    }

    /**
     * @return int
     */
    public function getId(): ?int
    {
        return $this->id;
    }

    /**
     * @return int|null
     */
    public function getMemberId(): ?int
    {
        return $this->memberId;
    }

    /**
     * @return string|null
     */
    public function getDate(): ?string
    {
        return $this->date;
    }

    /**
     * @return int|null
     */
    public function getValue(): ?int
    {
        return $this->value;
    }

    /**
     * @return int|null
     */
    public function getExtraValue(): ?int
    {
        return $this->extraValue;
    }

    /**
     * @return int|null
     */
    public function getIsRetroactive(): ?int
    {
        return $this->isRetroactive;
    }

    /**
     * @return int|null
     */
    public function getSignProductId(): ?int
    {
        return $this->signProductId;
    }

    /**
     * @return int|null
     */
    public function getCreatedAt(): ?int
    {
        return $this->createdAt;
    }

    /**
     * @return int|null
     */
    public function getUpdatedAt(): ?int
    {
        return $this->updatedAt;
    }

    /**
     * @return string|null
     */
    public function getYearDay(): ?string
    {
        return $this->yearDay;
    }

}
